package de.herzog.bbp.model;

import java.io.Serializable;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "MANNSCHAFTEN")
public class Mannschaft extends AbstractModel implements Serializable {

	private static final long serialVersionUID = 8059653243438779415L;

	@Id
	@GeneratedValue
	@Column(name = "M_ID")
	private Integer id;
	@ManyToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "K_ID")
	private Klasse klasse;
	@ManyToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "V_ID")
	private Verein verein;
	@Column(name = "M_NUMMER")
	private Integer nummer;

	public Mannschaft() {
		super();
	}

	public Mannschaft(Klasse klasse, Verein verein, Integer nummer) {
		super();
		setKlasse(klasse);
		setVerein(verein);
		setNummer(nummer);
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Klasse getKlasse() {
		return klasse;
	}

	public void setKlasse(Klasse klasse) {
		if (this.klasse != null) {
			this.klasse.getMannschaften().remove(this);
		}
		if (klasse != null) {
			klasse.getMannschaften().add(this);
		}
		this.klasse = klasse;
	}

	public Verein getVerein() {
		return verein;
	}

	public void setVerein(Verein verein) {
		if (this.verein != null) {
			this.verein.getMannschaften().remove(this);
		}
		if (verein != null) {
			verein.getMannschaften().add(this);
		}
		this.verein = verein;
	}

	public Integer getNummer() {
		return nummer;
	}

	public void setNummer(Integer nummer) {
		this.nummer = nummer;
	}

	public String toString() {
		return getKlasse().getName() + "-" + getVerein().getName() + getNummer();
	}
}
